Фильтры

Вы можете создать специальный тип запросов, который называется запросом фильтра. В то время как стандартные запросы используются для отображения списков информации из вашей базы данных, запросы фильтров используются для:

Например, для варианта добавления вкладки в окно события и отображения примечаний, которые добавлены в событие:

Для получения дополнительной информации о добавлении подобных вкладок см. раздел Коллекции.

В следующей таблице показаны основные отличия между стандартными запросами и запросами фильтров:

Стандартные запросы Запросы фильтров
Критерий фильтра, используемый для выбора источника бизнес-объекта, на котором построен запрос. Вы можете выбрать объект, для которого будете указывать критерий фильтра.
Критерии должны иметь абсолютные значения: они устанавливаются во время создания или во время выполнения с напоминаем пользователю ввести требуемые значения.

Критерии могут иметь абсолютные значения или значения, задаваемые во время выполнения.
Для списка можно, например, установить абсолютный критерий Пользователь, эквивалентный - Иван, для получения событий, в которых Иван является пользователем. Иначе можно установить критерий времени выполнения - Пользователь, эквивалентный (создавший пользователь) для получения списка событий для пользователя, создавшего текущее событие.

Могут содержать атрибуты предварительного просмотра. Не могут включать атрибуты предварительного просмотра.
Могут содержать группирование. Не могут содержать группирование.

Типовое применение запросов фильтров:

Для получения дополнительной информации о фильтрации данных родственных объектов в дизайнере объектов см. раздел Фильтрация данных.

В следующей процедуре представлено создание фильтра, который может быть добавлен на вкладку окна события для отображения только примечаний событий, в которых создавший их пользователь тот же, что и в данном событии. Для этого фильтра существует два условия:

Изначально фильтр выберет все примечания в модуле управления событиями. Затем первое условие отфильтрует примечания, добавленные для выбранного события, и второе условие отфильтрует примечания с создавшим пользователем, как и у события.

Чтобы создать фильтр:
  1. В списке Действиядизайнера запросов и отчетов щелкните Новый фильтр.
    Появится диалог "Новый фильтр".
  2. Введите Заголовок и Описание фильтра.
  3. В группе Основано на выберите модуль и бизнес-объект, содержащие данные, которые должны отображаться в списке.
    В нашем примере выберите Управлением событиями и Примечание – нужно отобразить список информации об этих примечаниях.
  4. В группе Фильтровать по выберите модуль и бизнес-объект, содержащие значение, по которому должен быть отфильтрован список. Это должен быть объект, для которого создано окно.
    В нашем примере выберите Управлением событиями и Событие – нужно выполнить фильтрацию по событию и значению для создавшего пользователя в событии.
  5. Выберите кнопку параметра Все, а затем щелкните OK.
    Будет открыт дизайнер фильтров; он очень похож на стандартный дизайнер запросов и отчетов.
  6. Добавьте атрибуты, которые должны отображаться в списке и нажмите Далее.
    Появится страница "Критерий". Если критерий не будет установлен, фильтр отобразит ВСЕ примечания в модуле управления событиями.
  7. Из дерева Атрибуты переместите атрибут для первого критерия фильтра в список Текущий критерий.
    Во-первых, нам нужно отобразить только примечания, связанные с отображенным событием - переместите взаимосвязь Событие () в список Текущий критерий.
    Появится диалог "Критерий".

Помните, что значения, доступные в этом диалоге, основаны на элементе Управление событиями\Событие, который является значением, по которому нужно выполнить фильтрацию, поэтому какой-либо выбор здесь не требуется. Нужно выполнить фильтрацию по значению верхнего уровня: Событие.

  1. Щелкните OK.
    Список "Текущий критерий" будет обновлен для отображения Событие равно (событие). Это значит, что событие в примечании соответствует отображенному в окне событию.
  2. Из дерева Атрибуты переместите следующий атрибут, на основе которого нужно создать критерий, в список Текущий критерий.
    В нашем примере нужно использовать атрибут Создавший пользователь.
    Появится диалог "Критерий".

Заметьте, что диалог "Критерий" отличен от предыдущего, так как выполняется фильтрация событий по атрибуту, а не по самому событию.

  1. В группе Значение сравнения выберите Указать значение выполнения.
    Параметр "Значение" изменится с поля списка, позволяющего указать абсолютное значение, на дерево, обеспечивающее ввод значения, которое будет определено во время выполнения. Доступные в дереве значения поступают из объекта, который был выбран в группе "Фильтровать по" в диалоге "Новый фильтр".
  2. В дереве Значение выберите атрибут, для которого нужно использовать значение выполнения при соответствии условию фильтра, а затем щелкните OK.
    В нашем примере нужно использовать атрибут Создавший пользователь.
    Список "Текущий критерий" будет обновлен.
  3. Щелкните , а затем нажмите Готово.

В нашем примере критерий фильтра считывает Событие, равное (событие) и Создавший пользователь равен (создавший пользователь). Поскольку фильтр был основан на элементе Управление событиями\Примечание, но использовалось фильтрование по Управление событиями\Событие, эти критерии будут справедливы, когда событие примечания соответствует событию, отображенному в окне, а также, когда создавший пользователь в примечании соответствует создавшему пользователю в текущем событии.
Добавление этого фильтра в окно "Событие" с использованием параметра "Запрос" (см. раздел Добавление запросов в окно) создаст вкладку в нижней части окна, в которой перечисляются все примечания, вложенные в событие, и которые имеют значение с тем же создавшим пользователем, который создал событие.